I have Ubuntu 18.04 and I have installed Miniconda and python 3.9 I have pytest installed and verify it like so: which pytest /usr/bin/pytest When I try to import it from python I get the error: 'No
Share, comment, bookmark or report
Starting pytest from a different dir (e.g. inside tests/) Using all the path hacks in all the other answers Changing it to from . import XXX or .. or any of the relative import options (but these all fail with ValueError: Attempted relative import in non-package .
Share, comment, bookmark or report
perhaps you had installed multiple python on your computer, because the install logs show pytest is installed on python 3.6, but the python shell show your python version is 3.8.2 Share Improve this answer
Share, comment, bookmark or report
and installed all the required packages again for python3.7. But now I cannot run my tests anymore. Because it says: /usr/bin/python3: No module named pytest. I'm not using virtual env and the problem is not about a specific module, because it cannot find other modules either. It should be related to python paths.
Share, comment, bookmark or report
E ModuleNotFoundError: No module named 'moduleone' I am running Python 3.7 and have read that since 3.3, empty __init__ files are no longer needed which means my project becomes an implicit namespace package. However, I have tried adding an __init__.py file in myproject/myproject/ and also tried adding a conftest.py file in myproject/ but ...
Share, comment, bookmark or report
I am following the pytest good practices or at least I think I am. However, pytest cannot find my module. It seems not to include the current directory in its PYTHONPATH. The source file: def add(x, y): return x + y. The test file: import pytest. from junk.ook import add.
Share, comment, bookmark or report
After installing the pytest module in a virtual environment, I used the python code to call and run the prompt to find the pytest module. I installed the pytest module outside the virtual environment. I can call it normally with python. import pytest def test_main(): assert 5!=5 if __name__ =="__main__": pytest.main()
Share, comment, bookmark or report
Run pytest itself as a module with: python -m pytest tests. This happens when the project hierarchy is, for example, package/src package/tests and in tests you import from src. Executing as a module will consider imports as absolute rather than relative to the execution location.
Share, comment, bookmark or report
Pytest actually runs fine but I run into issues trying to directly invoke the python file that I'm testing. Here is the basic folder layout: └── test_write_sql.py. Within both test_write_sql.py and write_sql.py I'm importing things using the generate module like so: Running pytest from the root generate folder works fine.
Share, comment, bookmark or report
Pytest looks for conftest.py files inside all your project folders. conftest.py provides configuration for the file tree pytest finds it in. Because pytest somehow scans all subdirectories starting from conftest.py folder, it should find packages/modules outside the tests folder (as long as a conftest.py file is in your app root folder).
Share, comment, bookmark or report
Comments